let commentsList = []; // 存储评论数据
let newsList = []; // 存储新闻数据（用于显示评论所属新闻标题）

// 初始化页面
async function initCommentManagement() {
    await Promise.all([loadCommentsData(), loadNewsData()]);
    renderCommentTable(commentsList);
    bindEvents();
}

// 加载评论数据
async function loadCommentsData() {
    try {
        const response = await fetch('./mock/comments.json');
        commentsList = await response.json();
    } catch (error) {
        console.error('加载评论数据失败：', error);
        // 降级默认数据
        commentsList = [
            { id: 1, newsId: 1, content: '经济数据很亮眼！希望后续政策能持续发力，让老百姓的钱包更鼓', time: '2025-10-01 10:15', author: '用户123' },
            { id: 2, newsId: 1, content: '高端制造增速超15%，说明产业升级有成效，期待更多国产高科技产品走进生活', time: '2025-10-01 11:02', author: '科技爱好者' },
            { id: 3, newsId: 2, content: '全球减排需要各国配合，不能只靠少数国家发力，希望协议能真正落地', time: '2025-09-30 15:30', author: '环保志愿者' },
            { id: 4, newsId: 3, content: 'AI预测天气准确率超95%太实用了，以后农民伯伯种地能更好应对极端天气', time: '2025-09-29 09:45', author: '程序员小李' },
            { id: 5, newsId: 4, content: '这部电影我看了，剧情很真实，演员演技在线，哭了好几次，票房大卖实至名归', time: '2025-10-02 14:20', author: '影迷小周' },
            { id: 6, newsId: 4, content: '作为影评人，我觉得这部电影的叙事节奏和情感表达都很出色，是今年国产片的惊喜', time: '2025-10-02 16:10', author: '娱乐评论家' }
        ];
    }
}

// 加载新闻数据（用于匹配新闻标题）
async function loadNewsData() {
    try {
        const response = await fetch('./mock/news.json');
        newsList = await response.json();
    } catch (error) {
        console.error('加载新闻数据失败：', error);
        newsList = [
            { id: 1, title: '国内经济稳步增长，三季度GDP同比增长5.2%' },
            { id: 2, title: '全球气候峰会达成新共识，130国承诺2030年减排45%' },
            { id: 3, title: '新型AI模型可精准预测天气，短期预报准确率超95%' },
            { id: 4, title: '《山河故人》国庆档票房破10亿，成年度黑马影片' }
        ];
    }
}

// 渲染评论表格
function renderCommentTable(data) {
    const tableBody = document.querySelector('#comment-list-table tbody');
    tableBody.innerHTML = '';

    if (data.length === 0) {
        tableBody.innerHTML = '<tr><td colspan="7" class="text-center py-3 text-gray-500">暂无评论数据</td></tr>';
        return;
    }

    data.forEach(comment => {
        // 匹配评论所属新闻标题
        const news = newsList.find(n => n.id.toString() === comment.newsId.toString()) || { title: '未知新闻' };
        
        const row = document.createElement('tr');
        row.innerHTML = `
            <td><input type="checkbox" class="comment-checkbox" data-id="${comment.id}"></td>
            <td>${comment.id}</td>
            <td>${comment.content}</td>
            <td>${news.title}</td>
            <td>${comment.author}</td>
            <td>${comment.time}</td>
            <td><button class="delete-comment-btn text-red-500 hover:text-red-700" data-id="${comment.id}">删除</button></td>
        `;
        tableBody.appendChild(row);
    });

    // 绑定删除按钮事件
    document.querySelectorAll('.delete-comment-btn').forEach(btn => {
        btn.addEventListener('click', () => deleteComment(btn.dataset.id));
    });
}

// 绑定页面事件
function bindEvents() {
    // 1. 全选/取消全选
    document.getElementById('select-all').addEventListener('change', (e) => {
        const checkboxes = document.querySelectorAll('.comment-checkbox');
        checkboxes.forEach(checkbox => {
            checkbox.checked = e.target.checked;
        });
    });

    // 2. 批量删除
    document.getElementById('batch-delete-btn').addEventListener('click', batchDeleteComments);

    // 3. 搜索评论
    document.getElementById('comment-search-btn').addEventListener('click', handleCommentSearch);
    document.getElementById('comment-search').addEventListener('keydown', (e) => {
        if (e.key === 'Enter') handleCommentSearch();
    });
}

// 单个删除评论
function deleteComment(commentId) {
    if (confirm('确定要删除这条评论吗？')) {
        commentsList = commentsList.filter(comment => comment.id.toString() !== commentId);
        renderCommentTable(commentsList);
        alert('评论删除成功！');
    }
}

// 批量删除评论
function batchDeleteComments() {
    const checkedCheckboxes = document.querySelectorAll('.comment-checkbox:checked');
    if (checkedCheckboxes.length === 0) {
        alert('请先选择要删除的评论！');
        return;
    }

    if (confirm(`确定要删除选中的${checkedCheckboxes.length}条评论吗？`)) {
        const checkedIds = Array.from(checkedCheckboxes).map(checkbox => checkbox.dataset.id);
        commentsList = commentsList.filter(comment => !checkedIds.includes(comment.id.toString()));
        renderCommentTable(commentsList);
        // 取消全选状态
        document.getElementById('select-all').checked = false;
        alert(`选中的${checkedCheckboxes.length}条评论已删除！`);
    }
}

// 搜索评论（按内容/用户名）
function handleCommentSearch() {
    const keyword = document.getElementById('comment-search').value.trim().toLowerCase();
    const filteredComments = commentsList.filter(comment => 
        comment.content.toLowerCase().includes(keyword) || 
        comment.author.toLowerCase().includes(keyword)
    );
    renderCommentTable(filteredComments);
    // 清空搜索框
    document.getElementById('comment-search').value = '';
}

// 页面加载初始化
window.onload = initCommentManagement;

